/**
 * @file codeforces/1670/d/main.cpp
 * @brief 等边三角形的数量等于交叉线数量的两倍
 * 可以看出直线的斜率一共有三种可能性
 * 最大化交点数的方法是让三种斜率的尽可能接近。
 *
 * 假定三种斜率分别为 1, 2, 3，斜率的增加数量分别是
 * +0, +1, +2, +2, +3, +4, +4, +5, +6, ...
 * 如果进行三三分组，得到的是 +3, +9, +15, +31
 * 前 X 组的和是 3X^2.
 * @version 1.0
 * @date 2022-05-07
 *
 **/

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

ll calc(ll n) {
  n--;
  ll ans = 0;
  ans = (n / 3) * (n / 3) * 3;
  for (int i = 0; i <= n % 3; ++i) ans += (n / 3) * 2 + i;
  return ans * 2;
}

ll solve(int n) {
  ll low = 0, high = 1e9;
  ll mid = (low + high) / 2;
  while (low <= high) {
    if (calc(mid) < n) {
      low = mid + 1;
    } else {
      high = mid - 1;
    }
    mid = (low + high) / 2;
  }
  return low;
}

int main() {
  int tc;
  cin >> tc;
  while (tc--) {
    int x;
    cin >> x;
    printf("%d\n", solve(x));
  }
}
